package com.hongyuan.coach.data.http;

import com.hongyuan.coach.data.userbean.MemberLoginBean;
import com.hongyuan.coach.data.userbean.TokenBean;
import com.hongyuan.coach.myview.select_time.ContentTimeBean;
import com.hongyuan.coach.ui.course.beans.CourseCalendarBeans;
import com.hongyuan.coach.ui.course.beans.CourseDetailBean;
import com.hongyuan.coach.ui.course.beans.MyCourseBeans;
import com.hongyuan.coach.ui.course.beans.MyCourseTopBeans;
import com.hongyuan.coach.ui.course.beans.OsBeans;
import com.hongyuan.coach.ui.course.beans.SalesGiveLessonBeans;
import com.hongyuan.coach.ui.course.beans.SalesPerformanceBean;
import com.hongyuan.coach.ui.home.beans.HomeContentBean;
import com.hongyuan.coach.ui.home.beans.SelectCoachBeans;
import com.hongyuan.coach.ui.home.beans.SelectCourseBeans;
import com.hongyuan.coach.ui.home.beans.StudentsBeans;
import com.hongyuan.coach.ui.home.beans.TopTimeBean;
import com.hongyuan.coach.ui.main.beans.CheckVersionBeans;
import com.hongyuan.coach.ui.main.beans.NoDataBean;
import com.hongyuan.coach.ui.main.beans.PhoneMessageTokenBean;
import com.hongyuan.coach.ui.main.beans.ReturnImgsBean;
import com.hongyuan.coach.ui.main.beans.ReturnMoreImgBean;
import com.hongyuan.coach.ui.member.beans.CourseRecordBeans;
import com.hongyuan.coach.ui.member.beans.MemberCourseBeans;
import com.hongyuan.coach.ui.member.beans.MemberInBeans;
import com.hongyuan.coach.ui.member.beans.MemberInfoBeans;
import com.hongyuan.coach.ui.member.beans.MembersBean;
import com.hongyuan.coach.ui.person.beans.CoachDeatilsBean;
import com.hongyuan.coach.ui.person.beans.CoachIdleTimeBean;
import com.hongyuan.coach.ui.person.beans.CoachImgBean;

import java.util.List;
import java.util.Map;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PartMap;
import retrofit2.http.Url;

public interface MyApiService {

    @Multipart
    @POST("/api/index/upfile_oss")
    Observable<MyBaseResponse<ReturnImgsBean>> upfile_oss(@PartMap() Map<String, RequestBody> params);

    @Multipart
    @POST("/api/index/upfile_oss_more")
    Observable<MyBaseResponse<ReturnMoreImgBean>> upfile_oss_more(@PartMap() Map<String, RequestBody> params);

    @FormUrlEncoded
    @POST("/api/index/api_token")
    Observable<MyBaseResponse<TokenBean>> api_token(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/index/memberlogin")
    Observable<MyBaseResponse<MemberLoginBean>> memberlogin(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/index/get_token")
    Observable<MyBaseResponse<PhoneMessageTokenBean>> get_token(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/index/send_regi_msg")
    Observable<MyBaseResponse<NoDataBean>> send_regi_msg(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/index/do_find_password")
    Observable<MyBaseResponse<NoDataBean>> do_find_password(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/index/memberlogin_dxm")
    Observable<MyBaseResponse<MemberLoginBean>> memberlogin_dxm(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/appsethome/check_app_version")
    Observable<MyBaseResponse<CheckVersionBeans>> check_app_version(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachhome/get_plan_date")
    Observable<MyBaseResponse<List<TopTimeBean>>> get_plan_date(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/get_coach_appointment_course_privite_list")
    Observable<MyBaseResponse<HomeContentBean>> get_coach_appointment_course_privite_list(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coursemember/jl_un_agree_cancel")
    Observable<MyBaseResponse<NoDataBean>> jl_un_agree_cancel(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coursemember/jl_agree_cancel")
    Observable<MyBaseResponse<NoDataBean>> jl_agree_cancel(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/cp_list")
    Observable<MyBaseResponse<List<SelectCourseBeans>>> cp_list(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/privite_coach_list")
    Observable<MyBaseResponse<List<SelectCoachBeans>>> privite_coach_list(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/get_coach_timeplan_day_list")
    Observable<MyBaseResponse<List<ContentTimeBean>>> get_coach_timeplan_day_list(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/get_coach_timeplan_day_list_coach")
    Observable<MyBaseResponse<List<ContentTimeBean>>> get_coach_timeplan_day_list_coach(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/del_coach_timeplan")
    Observable<MyBaseResponse<NoDataBean>> del_coach_timeplan(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/add_coach_timeplan")
    Observable<MyBaseResponse<NoDataBean>> add_coach_timeplan(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/privite_user_order")
    Observable<MyBaseResponse<StudentsBeans>> privite_user_order(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/add_course_privite_appointment")
    Observable<MyBaseResponse<NoDataBean>> add_course_privite_appointment(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coursea/get_course_privite_list")
    Observable<MyBaseResponse<MyCourseBeans>> get_course_privite_list(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/get_coach_timeplan_list")
    Observable<MyBaseResponse<CourseCalendarBeans>> get_coach_timeplan_list(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coursea/get_course_privite_info")
    Observable<MyBaseResponse<CourseDetailBean>> get_course_privite_info(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/get_coach_members")
    Observable<MyBaseResponse<MembersBean>> get_coach_members(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/course_index")
    Observable<MyBaseResponse<MyCourseTopBeans>> course_index(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/order_achievement")
    Observable<MyBaseResponse<SalesPerformanceBean>> order_achievement(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/os_list")
    Observable<MyBaseResponse<OsBeans>> os_list(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/cpa_achievement")
    Observable<MyBaseResponse<SalesGiveLessonBeans>> cpa_achievement(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/member_info")
    Observable<MyBaseResponse<MemberInfoBeans>> member_info(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/cp_member")
    Observable<MyBaseResponse<MemberCourseBeans>> cp_member(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/in_member")
    Observable<MyBaseResponse<MemberInBeans>> in_member(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/cpa_member")
    Observable<MyBaseResponse<CourseRecordBeans>> cpa_member(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/get_coach_index_info")
    Observable<MyBaseResponse<CoachDeatilsBean>> get_coach_index_info(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachhome/get_coach_last_kong_time")
    Observable<MyBaseResponse<CoachIdleTimeBean>> get_coach_last_kong_time(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/get_coach_photo_list")
    Observable<MyBaseResponse<CoachImgBean>> get_coach_photo_list(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/del_photos")
    Observable<MyBaseResponse<NoDataBean>> del_photos(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/coachmember/add_coach_photo")
    Observable<MyBaseResponse<NoDataBean>> add_coach_photo(@FieldMap Map<String, String> params);

}
